/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javalee.maps;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author will
 */
@Entity
@Table(name = "itens_estrut")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ItensEstrut.findAll", query = "SELECT i FROM ItensEstrut i"),
    @NamedQuery(name = "ItensEstrut.findByQtdade", query = "SELECT i FROM ItensEstrut i WHERE i.qtdade = :qtdade"),
    @NamedQuery(name = "ItensEstrut.findByIdProduto", query = "SELECT i FROM ItensEstrut i WHERE i.itensEstrutPK.idProduto = :idProduto"),
    @NamedQuery(name = "ItensEstrut.findByIdProdComposto", query = "SELECT i FROM ItensEstrut i WHERE i.itensEstrutPK.idProdComposto = :idProdComposto")})
public class ItensEstrut implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ItensEstrutPK itensEstrutPK;
    @Column(name = "qtdade")
    private Integer qtdade;
    @JoinColumn(name = "id_prod_composto", referencedColumnName = "id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Produto produto;
    @JoinColumn(name = "id_produto", referencedColumnName = "id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Produto produto1;

    public ItensEstrut() {
    }

    public ItensEstrut(ItensEstrutPK itensEstrutPK) {
        this.itensEstrutPK = itensEstrutPK;
    }

    public ItensEstrut(int idProduto, int idProdComposto) {
        this.itensEstrutPK = new ItensEstrutPK(idProduto, idProdComposto);
    }

    public ItensEstrutPK getItensEstrutPK() {
        return itensEstrutPK;
    }

    public void setItensEstrutPK(ItensEstrutPK itensEstrutPK) {
        this.itensEstrutPK = itensEstrutPK;
    }

    public Integer getQtdade() {
        return qtdade;
    }

    public void setQtdade(Integer qtdade) {
        this.qtdade = qtdade;
    }

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public Produto getProdutoComposto() {
        return produto1;
    }

    public void setProdutoComposto(Produto produto1) {
        this.produto1 = produto1;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (itensEstrutPK != null ? itensEstrutPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ItensEstrut)) {
            return false;
        }
        ItensEstrut other = (ItensEstrut) object;
        if ((this.itensEstrutPK == null && other.itensEstrutPK != null) || (this.itensEstrutPK != null && !this.itensEstrutPK.equals(other.itensEstrutPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "javalee.dao.ItensEstrut[ itensEstrutPK=" + itensEstrutPK + " ]";
    }
    
}
